package jp.co.jolystar.product.view;

import jp.co.jolystar.product.R;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

/**
 * 羅針盤の針のView
 *
 * @author Riebon
 *
 */
public class NeedleView extends View {

    /**
     * 画像高さ
     */
    private int bitmapHeight = 0;
    /**
     * 画面の幅
     */
    private int displayWidth = 0;
    /**
     * 画面の高さ
     */
    private int displayHeight = 0;
    /**
     * 目的地角度
     */
    private float angle = 0.0f;

    public NeedleView(Context context) {
        super(context);
    }

    public NeedleView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        // 針画像を取得
        Resources res = getResources();
        Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.needle);

        bitmapHeight = bitmap.getHeight();

        Paint paint = new Paint();
        paint.setAntiAlias(true);

        // 針画像を画面の中心に描画
        canvas.rotate(angle, displayWidth / 2, displayHeight / 2);

        // 針画像を描画
        canvas.drawBitmap(bitmap, 0, (displayHeight / 2) - (bitmapHeight / 2),
                paint);

    }

    /**
     * 画面サイズを取得する
     */
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        displayWidth = w;
        displayHeight = h;
    }

    /**
     * 目的地の角度をセットする
     */
    public void setAngle (float toTargetAngle) {
    	angle = toTargetAngle;
    }
}
